#include <stdio.h>
#include <stdlib.h>
/**
 *
 * @param n 要转化的首个数字
 * @param p1 要转化的指针
 * @param z 一共几个元素
 */
int * convertDecimalToBinary(int n,int z,int (*p1)[z]){
//    int a[n][z]; //创建二维数组  用来存入每一行的二进制数
//    p1 = a;
    p1 = (int (*)[z]) malloc(sizeof(int) * z * n);
    int remainder,i = 0,j = 0;
    int b,d;
    //转化的数字依次递减
    for (b = n -1; b > -1 ; b--) {
        int c = b;
        while (c >= 0){
            remainder = c%2;
            c /= 2;
            p1[i][j] = remainder;
            //如果c = 0时 在二维数组中的最后补0
            if(j < z){
                if(c == 0 && j == z-1){
                    c = -1;
                }
                j++;
            }
        }
        i ++;
        //重新初始化j
        j = 0;
    }
//    for (b = 0; b < n; ++b) {
//        for (d = 0; d < z; ++d) {
//            printf("%4d",*(*(p1+b)+d));
//        }
//        printf("\n");
//    }
//    printf("\n");

    return (int *) p1;
}